#version 310 es
#ifdef GL_EXT_shader_texture_lod
#extension GL_EXT_shader_texture_lod : enable
#endif

precision highp float;
precision highp int;
#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
#define UNITY_UNIFORM
#else
#define UNITY_UNIFORM uniform
#endif
#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
#if UNITY_SUPPORTS_UNIFORM_LOCATION
#define UNITY_LOCATION(x) layout(location = x)
#define UNITY_BINDING(x) layout(binding = x, std140)
#else
#define UNITY_LOCATION(x)
#define UNITY_BINDING(x) layout(std140)
#endif
uniform 	vec4 _ScaledScreenParams;
uniform 	vec2 _GlobalMipBias;
uniform 	vec4 _MainLightPosition;
uniform 	mediump vec4 _MainLightColor;
uniform 	vec4 _FPParams0;
uniform 	vec4 _FPParams1;
uniform 	vec4 _AdditionalLightsPosition[16];
uniform 	mediump vec4 _AdditionalLightsColor[16];
uniform 	mediump vec4 _AdditionalLightsAttenuation[16];
uniform 	mediump vec4 _AdditionalLightsSpotDir[16];
uniform 	vec3 _WorldSpaceCameraPos;
uniform 	vec4 unity_OrthoParams;
uniform 	vec4 hlslcc_mtx4x4unity_MatrixV[4];
uniform 	vec4 _MainLightShadowParams;
uniform 	vec4 _AdditionalShadowFadeParams;
uniform 	vec4 _AdditionalShadowParams[16];
uniform 	vec4 hlslcc_mtx4x4_AdditionalLightsWorldToShadow[64];
uniform 	vec4 hlslcc_mtx4x4_MainLightWorldToLight[4];
uniform 	float _AdditionalLightsCookieEnableBits;
uniform 	float _MainLightCookieTextureFormat;
uniform 	float _AdditionalLightsCookieAtlasTextureFormat;
uniform 	vec4 hlslcc_mtx4x4_AdditionalLightsWorldToLights[64];
uniform 	vec4 _AdditionalLightsCookieAtlasUVRects[16];
uniform 	float _AdditionalLightsLightTypes[16];
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
UNITY_BINDING(0) uniform URP_ZBinBuffer {
#endif
	UNITY_UNIFORM vec4                URP_ZBins[1024];
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
};
#endif
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
UNITY_BINDING(1) uniform urp_TileBuffer {
#endif
	UNITY_UNIFORM vec4                urp_Tiles[1024];
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
};
#endif
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
UNITY_BINDING(2) uniform UnityPerDraw {
#endif
	UNITY_UNIFORM vec4                hlslcc_mtx4x4unity_ObjectToWorld[4];
	UNITY_UNIFORM vec4                hlslcc_mtx4x4unity_WorldToObject[4];
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_LODFade;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedXunity_WorldTransformParams;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_RenderingLayer;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedXunity_LightData;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedXunity_LightIndices[2];
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_ProbesOcclusion;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedXunity_SpecCube0_HDR;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedXunity_SpecCube1_HDR;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_SpecCube0_BoxMax;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_SpecCube0_BoxMin;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_SpecCube0_ProbePosition;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_SpecCube1_BoxMax;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_SpecCube1_BoxMin;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_SpecCube1_ProbePosition;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_LightmapST;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_DynamicLightmapST;
	UNITY_UNIFORM mediump vec4                unity_SHAr;
	UNITY_UNIFORM mediump vec4                unity_SHAg;
	UNITY_UNIFORM mediump vec4                unity_SHAb;
	UNITY_UNIFORM mediump vec4                unity_SHBr;
	UNITY_UNIFORM mediump vec4                unity_SHBg;
	UNITY_UNIFORM mediump vec4                unity_SHBb;
	UNITY_UNIFORM mediump vec4                unity_SHC;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_RendererBounds_Min;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_RendererBounds_Max;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXhlslcc_mtx4x4unity_MatrixPreviousM[4];
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXhlslcc_mtx4x4unity_MatrixPreviousMI[4];
	UNITY_UNIFORM vec4 Xhlslcc_UnusedXunity_MotionVectorsParams;
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
};
#endif
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
UNITY_BINDING(3) uniform UnityPerMaterial {
#endif
	UNITY_UNIFORM vec4 Xhlslcc_UnusedX_SoftParticleFadeParams;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedX_CameraFadeParams;
	UNITY_UNIFORM vec4 Xhlslcc_UnusedX_BaseMap_ST;
	UNITY_UNIFORM mediump vec4                _BaseColor;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedX_EmissionColor;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedX_BaseColorAddSubDiff;
	UNITY_UNIFORM mediump vec4 Xhlslcc_UnusedX_SpecColor;
	UNITY_UNIFORM mediump float Xhlslcc_UnusedX_Cutoff;
	UNITY_UNIFORM mediump float Xhlslcc_UnusedX_Smoothness;
	UNITY_UNIFORM mediump float Xhlslcc_UnusedX_DistortionStrengthScaled;
	UNITY_UNIFORM mediump float Xhlslcc_UnusedX_DistortionBlend;
	UNITY_UNIFORM mediump float                _Surface;
#if HLSLCC_ENABLE_UNIFORM_BUFFERS
};
#endif
UNITY_LOCATION(0) uniform mediump sampler2D _MainLightShadowmapTexture;
UNITY_LOCATION(1) uniform mediump sampler2DShadow hlslcc_zcmp_MainLightShadowmapTexture;
UNITY_LOCATION(2) uniform mediump sampler2D _AdditionalLightsShadowmapTexture;
UNITY_LOCATION(3) uniform mediump sampler2DShadow hlslcc_zcmp_AdditionalLightsShadowmapTexture;
UNITY_LOCATION(4) uniform mediump sampler2D _MainLightCookieTexture;
UNITY_LOCATION(5) uniform mediump sampler2D _AdditionalLightsCookieAtlasTexture;
UNITY_LOCATION(6) uniform mediump sampler2D _BaseMap;
in highp vec2 vs_TEXCOORD0;
in mediump vec4 vs_COLOR0;
in highp vec4 vs_TEXCOORD1;
in mediump vec3 vs_TEXCOORD2;
in highp vec4 vs_TEXCOORD7;
layout(location = 0) out mediump vec4 SV_Target0;
mediump vec4 u_xlat16_0;
vec4 u_xlat1;
bool u_xlatb1;
mediump vec3 u_xlat16_2;
vec4 u_xlat3;
mediump vec4 u_xlat16_3;
mediump vec3 u_xlat16_4;
vec3 u_xlat5;
int u_xlati5;
uint u_xlatu5;
bool u_xlatb5;
vec3 u_xlat6;
ivec4 u_xlati6;
uint u_xlatu6;
bvec2 u_xlatb6;
mediump vec3 u_xlat16_7;
vec3 u_xlat8;
ivec2 u_xlati8;
uvec2 u_xlatu8;
bool u_xlatb8;
vec4 u_xlat9;
mediump float u_xlat16_9;
ivec2 u_xlati9;
bvec4 u_xlatb9;
vec3 u_xlat10;
bvec3 u_xlatb10;
vec3 u_xlat11;
mediump vec3 u_xlat16_12;
mediump vec3 u_xlat16_13;
ivec2 u_xlati19;
uint u_xlatu19;
bool u_xlatb19;
bvec2 u_xlatb20;
vec3 u_xlat23;
int u_xlati23;
bvec3 u_xlatb23;
float u_xlat33;
int u_xlati33;
uint u_xlatu33;
ivec2 u_xlati36;
float u_xlat37;
int u_xlati37;
vec2 u_xlat38;
bvec2 u_xlatb38;
float u_xlat43;
mediump float u_xlat16_43;
bool u_xlatb43;
mediump float u_xlat16_44;
mediump float u_xlat16_46;
float u_xlat47;
uint u_xlatu47;
bool u_xlatb47;
float u_xlat48;
mediump float u_xlat16_48;
int u_xlati48;
uint u_xlatu48;
bool u_xlatb48;
float u_xlat50;
int u_xlati50;
bool u_xlatb50;
float u_xlat51;
int int_bitfieldExtract(int value, int offset, int bits) {
#if defined(GL_ES) && __VERSION__ <= 300
    return (bits == 0) ? 0 : (offset + bits < 32) ? ((value << (32 - bits - offset)) >> (32 - bits)) : (value >> offset);
#else
    return bitfieldExtract(value, offset, (offset + bits < 32) ? bits : (32 - offset));
#endif
}

int op_not(int value) { return -value - 1; }
ivec2 op_not(ivec2 a) { a.x = op_not(a.x); a.y = op_not(a.y); return a; }
ivec3 op_not(ivec3 a) { a.x = op_not(a.x); a.y = op_not(a.y); a.z = op_not(a.z); return a; }
ivec4 op_not(ivec4 a) { a.x = op_not(a.x); a.y = op_not(a.y); a.z = op_not(a.z); a.w = op_not(a.w); return a; }

void main()
{
vec4 hlslcc_FragCoord = vec4(gl_FragCoord.xyz, 1.0/gl_FragCoord.w);
    u_xlat16_0 = texture(_BaseMap, vs_TEXCOORD0.xy, _GlobalMipBias.x);
    u_xlat16_0 = u_xlat16_0 * _BaseColor;
    u_xlat16_0 = u_xlat16_0 * vs_COLOR0;
    u_xlat1.x = dot(vs_TEXCOORD2.xyz, vs_TEXCOORD2.xyz);
    u_xlat1.x = inversesqrt(u_xlat1.x);
    u_xlat1.xyz = u_xlat1.xxx * vs_TEXCOORD2.xyz;
    u_xlat1.w = 1.0;
    u_xlat16_2.x = dot(unity_SHAr, u_xlat1);
    u_xlat16_2.y = dot(unity_SHAg, u_xlat1);
    u_xlat16_2.z = dot(unity_SHAb, u_xlat1);
    u_xlat16_3 = u_xlat1.yzzx * u_xlat1.xyzz;
    u_xlat16_4.x = dot(unity_SHBr, u_xlat16_3);
    u_xlat16_4.y = dot(unity_SHBg, u_xlat16_3);
    u_xlat16_4.z = dot(unity_SHBb, u_xlat16_3);
    u_xlat16_44 = u_xlat1.y * u_xlat1.y;
    u_xlat16_44 = u_xlat1.x * u_xlat1.x + (-u_xlat16_44);
    u_xlat16_3.xyz = unity_SHC.xyz * vec3(u_xlat16_44) + u_xlat16_4.xyz;
    u_xlat16_2.xyz = u_xlat16_2.xyz + u_xlat16_3.xyz;
    u_xlat16_2.xyz = max(u_xlat16_2.xyz, vec3(0.0, 0.0, 0.0));
    vec3 txVec0 = vec3(vs_TEXCOORD7.xy,vs_TEXCOORD7.z);
    u_xlat16_43 = textureLod(hlslcc_zcmp_MainLightShadowmapTexture, txVec0, 0.0);
    u_xlat16_44 = (-_MainLightShadowParams.x) + 1.0;
    u_xlat16_44 = u_xlat16_43 * _MainLightShadowParams.x + u_xlat16_44;
    u_xlatb43 = 0.0>=vs_TEXCOORD7.z;
    u_xlatb5 = vs_TEXCOORD7.z>=1.0;
    u_xlatb43 = u_xlatb43 || u_xlatb5;
    u_xlat16_44 = (u_xlatb43) ? 1.0 : u_xlat16_44;
    u_xlat5.xyz = vs_TEXCOORD1.xyz + (-_WorldSpaceCameraPos.xyz);
    u_xlat43 = dot(u_xlat5.xyz, u_xlat5.xyz);
    u_xlat47 = u_xlat43 * _MainLightShadowParams.z + _MainLightShadowParams.w;
    u_xlat47 = clamp(u_xlat47, 0.0, 1.0);
    u_xlat16_3.x = (-u_xlat16_44) + 1.0;
    u_xlat16_44 = u_xlat47 * u_xlat16_3.x + u_xlat16_44;
    u_xlatb47 = _MainLightCookieTextureFormat!=-1.0;
    if(u_xlatb47){
        u_xlat6.xy = vs_TEXCOORD1.yy * hlslcc_mtx4x4_MainLightWorldToLight[1].xy;
        u_xlat6.xy = hlslcc_mtx4x4_MainLightWorldToLight[0].xy * vs_TEXCOORD1.xx + u_xlat6.xy;
        u_xlat6.xy = hlslcc_mtx4x4_MainLightWorldToLight[2].xy * vs_TEXCOORD1.zz + u_xlat6.xy;
        u_xlat6.xy = u_xlat6.xy + hlslcc_mtx4x4_MainLightWorldToLight[3].xy;
        u_xlat6.xy = u_xlat6.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
        u_xlat16_3 = texture(_MainLightCookieTexture, u_xlat6.xy, _GlobalMipBias.x);
        u_xlatb6.xy = equal(vec4(vec4(_MainLightCookieTextureFormat, _MainLightCookieTextureFormat, _MainLightCookieTextureFormat, _MainLightCookieTextureFormat)), vec4(0.0, 1.0, 0.0, 0.0)).xy;
        u_xlat16_4.x = (u_xlatb6.y) ? u_xlat16_3.w : u_xlat16_3.x;
        u_xlat16_4.xyz = (u_xlatb6.x) ? u_xlat16_3.xyz : u_xlat16_4.xxx;
    } else {
        u_xlat16_4.x = float(1.0);
        u_xlat16_4.y = float(1.0);
        u_xlat16_4.z = float(1.0);
    }
    u_xlat16_4.xyz = u_xlat16_4.xyz * _MainLightColor.xyz;
    u_xlat6.xyz = vec3(u_xlat16_44) * u_xlat16_4.xyz;
    u_xlat16_44 = dot(u_xlat1.xyz, _MainLightPosition.xyz);
    u_xlat16_44 = clamp(u_xlat16_44, 0.0, 1.0);
    u_xlat16_4.xyz = vec3(u_xlat16_44) * u_xlat6.xyz;
    u_xlat16_4.xyz = u_xlat16_0.xyz * u_xlat16_4.xyz;
    u_xlatu47 = uint(_FPParams0.w);
    u_xlatu6 = min(u_xlatu47, 16u);
    u_xlat43 = u_xlat43 * _AdditionalShadowFadeParams.x + _AdditionalShadowFadeParams.y;
    u_xlat43 = clamp(u_xlat43, 0.0, 1.0);
    u_xlatb20.xy = equal(vec4(vec4(_AdditionalLightsCookieAtlasTextureFormat, _AdditionalLightsCookieAtlasTextureFormat, _AdditionalLightsCookieAtlasTextureFormat, _AdditionalLightsCookieAtlasTextureFormat)), vec4(0.0, 1.0, 0.0, 0.0)).xy;
    u_xlat16_7.x = float(0.0);
    u_xlat16_7.y = float(0.0);
    u_xlat16_7.z = float(0.0);
    for(uint u_xlatu_loop_1 = uint(0u) ; u_xlatu_loop_1<u_xlatu6 ; u_xlatu_loop_1++)
    {
        u_xlat8.xyz = (-vs_TEXCOORD1.xyz) * _AdditionalLightsPosition[int(u_xlatu_loop_1)].www + _AdditionalLightsPosition[int(u_xlatu_loop_1)].xyz;
        u_xlat50 = dot(u_xlat8.xyz, u_xlat8.xyz);
        u_xlat50 = max(u_xlat50, 6.10351562e-05);
        u_xlat9.x = inversesqrt(u_xlat50);
        u_xlat8.xyz = u_xlat8.xyz * u_xlat9.xxx;
        u_xlat9.x = float(1.0) / float(u_xlat50);
        u_xlat50 = u_xlat50 * _AdditionalLightsAttenuation[int(u_xlatu_loop_1)].x;
        u_xlat16_44 = (-u_xlat50) * u_xlat50 + 1.0;
        u_xlat16_44 = max(u_xlat16_44, 0.0);
        u_xlat16_44 = u_xlat16_44 * u_xlat16_44;
        u_xlat50 = u_xlat16_44 * u_xlat9.x;
        u_xlat16_44 = dot(_AdditionalLightsSpotDir[int(u_xlatu_loop_1)].xyz, u_xlat8.xyz);
        u_xlat16_44 = u_xlat16_44 * _AdditionalLightsAttenuation[int(u_xlatu_loop_1)].z + _AdditionalLightsAttenuation[int(u_xlatu_loop_1)].w;
        u_xlat16_44 = clamp(u_xlat16_44, 0.0, 1.0);
        u_xlat16_44 = u_xlat16_44 * u_xlat16_44;
        u_xlat50 = u_xlat16_44 * u_xlat50;
        u_xlati9.x = int(_AdditionalShadowParams[int(u_xlatu_loop_1)].w);
        u_xlatb23.x = u_xlati9.x>=0;
        if(u_xlatb23.x){
            u_xlatb23.x = vec4(0.0, 0.0, 0.0, 0.0)!=vec4(_AdditionalShadowParams[int(u_xlatu_loop_1)].z);
            if(u_xlatb23.x){
                u_xlatb23.xyz = greaterThanEqual(abs(u_xlat8.zzyy), abs(u_xlat8.xyxx)).xyz;
                u_xlatb23.x = u_xlatb23.y && u_xlatb23.x;
                u_xlatb10.xyz = lessThan((-u_xlat8.zyxz), vec4(0.0, 0.0, 0.0, 0.0)).xyz;
                u_xlat10.x = (u_xlatb10.x) ? float(5.0) : float(4.0);
                u_xlat10.y = (u_xlatb10.y) ? float(3.0) : float(2.0);
                u_xlat37 = u_xlatb10.z ? 1.0 : float(0.0);
                u_xlat37 = (u_xlatb23.z) ? u_xlat10.y : u_xlat37;
                u_xlat23.x = (u_xlatb23.x) ? u_xlat10.x : u_xlat37;
                u_xlat37 = trunc(_AdditionalShadowParams[int(u_xlatu_loop_1)].w);
                u_xlat23.x = u_xlat23.x + u_xlat37;
                u_xlati9.x = int(u_xlat23.x);
            }
            u_xlati9.x = int(u_xlati9.x << (2 & int(0x1F)));
            u_xlat3 = vs_TEXCOORD1.yyyy * hlslcc_mtx4x4_AdditionalLightsWorldToShadow[(u_xlati9.x + 1)];
            u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToShadow[u_xlati9.x] * vs_TEXCOORD1.xxxx + u_xlat3;
            u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToShadow[(u_xlati9.x + 2)] * vs_TEXCOORD1.zzzz + u_xlat3;
            u_xlat3 = u_xlat3 + hlslcc_mtx4x4_AdditionalLightsWorldToShadow[(u_xlati9.x + 3)];
            u_xlat9.xyz = u_xlat3.xyz / u_xlat3.www;
            vec3 txVec1 = vec3(u_xlat9.xy,u_xlat9.z);
            u_xlat16_9 = textureLod(hlslcc_zcmp_AdditionalLightsShadowmapTexture, txVec1, 0.0);
            u_xlat16_44 = 1.0 + (-_AdditionalShadowParams[int(u_xlatu_loop_1)].x);
            u_xlat16_44 = u_xlat16_9 * _AdditionalShadowParams[int(u_xlatu_loop_1)].x + u_xlat16_44;
            u_xlatb9.x = 0.0>=u_xlat9.z;
            u_xlatb23.x = u_xlat9.z>=1.0;
            u_xlatb9.x = u_xlatb23.x || u_xlatb9.x;
            u_xlat16_44 = (u_xlatb9.x) ? 1.0 : u_xlat16_44;
        } else {
            u_xlat16_44 = 1.0;
        }
        u_xlat16_46 = (-u_xlat16_44) + 1.0;
        u_xlat16_44 = u_xlat43 * u_xlat16_46 + u_xlat16_44;
        u_xlati9.x = int(1 << (int(u_xlatu_loop_1) & int(0x1F)));
        u_xlati9.x = int(uint(uint(u_xlati9.x) & uint(floatBitsToUint(_AdditionalLightsCookieEnableBits))));
        if(u_xlati9.x != 0) {
            u_xlati9.x = int(_AdditionalLightsLightTypes[int(u_xlatu_loop_1)]);
            u_xlati23 = (u_xlati9.x != 0) ? 0 : 1;
            u_xlati37 = int(int(u_xlatu_loop_1) << (2 & int(0x1F)));
            if(u_xlati23 != 0) {
                u_xlat10.xyz = vs_TEXCOORD1.yyy * hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 1)].xyw;
                u_xlat10.xyz = hlslcc_mtx4x4_AdditionalLightsWorldToLights[u_xlati37].xyw * vs_TEXCOORD1.xxx + u_xlat10.xyz;
                u_xlat10.xyz = hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 2)].xyw * vs_TEXCOORD1.zzz + u_xlat10.xyz;
                u_xlat10.xyz = u_xlat10.xyz + hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 3)].xyw;
                u_xlat23.xz = u_xlat10.xy / u_xlat10.zz;
                u_xlat23.xz = u_xlat23.xz * vec2(0.5, 0.5) + vec2(0.5, 0.5);
                u_xlat23.xz = clamp(u_xlat23.xz, 0.0, 1.0);
                u_xlat23.xz = _AdditionalLightsCookieAtlasUVRects[int(u_xlatu_loop_1)].xy * u_xlat23.xz + _AdditionalLightsCookieAtlasUVRects[int(u_xlatu_loop_1)].zw;
            } else {
                u_xlatb9.x = u_xlati9.x==1;
                u_xlati9.x = u_xlatb9.x ? 1 : int(0);
                if(u_xlati9.x != 0) {
                    u_xlat10.xy = vs_TEXCOORD1.yy * hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 1)].xy;
                    u_xlat10.xy = hlslcc_mtx4x4_AdditionalLightsWorldToLights[u_xlati37].xy * vs_TEXCOORD1.xx + u_xlat10.xy;
                    u_xlat10.xy = hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 2)].xy * vs_TEXCOORD1.zz + u_xlat10.xy;
                    u_xlat10.xy = u_xlat10.xy + hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 3)].xy;
                    u_xlat10.xy = u_xlat10.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
                    u_xlat10.xy = fract(u_xlat10.xy);
                    u_xlat23.xz = _AdditionalLightsCookieAtlasUVRects[int(u_xlatu_loop_1)].xy * u_xlat10.xy + _AdditionalLightsCookieAtlasUVRects[int(u_xlatu_loop_1)].zw;
                } else {
                    u_xlat3 = vs_TEXCOORD1.yyyy * hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 1)];
                    u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToLights[u_xlati37] * vs_TEXCOORD1.xxxx + u_xlat3;
                    u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 2)] * vs_TEXCOORD1.zzzz + u_xlat3;
                    u_xlat3 = u_xlat3 + hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati37 + 3)];
                    u_xlat10.xyz = u_xlat3.xyz / u_xlat3.www;
                    u_xlat9.x = dot(u_xlat10.xyz, u_xlat10.xyz);
                    u_xlat9.x = inversesqrt(u_xlat9.x);
                    u_xlat10.xyz = u_xlat9.xxx * u_xlat10.xyz;
                    u_xlat9.x = dot(abs(u_xlat10.xyz), vec3(1.0, 1.0, 1.0));
                    u_xlat9.x = max(u_xlat9.x, 9.99999997e-07);
                    u_xlat9.x = float(1.0) / float(u_xlat9.x);
                    u_xlat11.xyz = u_xlat9.xxx * u_xlat10.zxy;
                    u_xlat11.x = (-u_xlat11.x);
                    u_xlat11.x = clamp(u_xlat11.x, 0.0, 1.0);
                    u_xlatb38.xy = greaterThanEqual(u_xlat11.yzyz, vec4(0.0, 0.0, 0.0, 0.0)).xy;
                    u_xlat38.x = (u_xlatb38.x) ? u_xlat11.x : (-u_xlat11.x);
                    u_xlat38.y = (u_xlatb38.y) ? u_xlat11.x : (-u_xlat11.x);
                    u_xlat9.xz = u_xlat10.xy * u_xlat9.xx + u_xlat38.xy;
                    u_xlat9.xz = u_xlat9.xz * vec2(0.5, 0.5) + vec2(0.5, 0.5);
                    u_xlat9.xz = clamp(u_xlat9.xz, 0.0, 1.0);
                    u_xlat23.xz = _AdditionalLightsCookieAtlasUVRects[int(u_xlatu_loop_1)].xy * u_xlat9.xz + _AdditionalLightsCookieAtlasUVRects[int(u_xlatu_loop_1)].zw;
                }
            }
            u_xlat16_3 = textureLod(_AdditionalLightsCookieAtlasTexture, u_xlat23.xz, 0.0);
            u_xlat16_46 = (u_xlatb20.y) ? u_xlat16_3.w : u_xlat16_3.x;
            u_xlat16_12.xyz = (u_xlatb20.x) ? u_xlat16_3.xyz : vec3(u_xlat16_46);
        } else {
            u_xlat16_12.x = float(1.0);
            u_xlat16_12.y = float(1.0);
            u_xlat16_12.z = float(1.0);
        }
        u_xlat16_12.xyz = u_xlat16_12.xyz * _AdditionalLightsColor[int(u_xlatu_loop_1)].xyz;
        u_xlat50 = u_xlat16_44 * u_xlat50;
        u_xlat9.xyz = vec3(u_xlat50) * u_xlat16_12.xyz;
        u_xlat16_44 = dot(u_xlat1.xyz, u_xlat8.xyz);
        u_xlat16_44 = clamp(u_xlat16_44, 0.0, 1.0);
        u_xlat16_12.xyz = vec3(u_xlat16_44) * u_xlat9.xyz;
        u_xlat16_7.xyz = u_xlat16_12.xyz * u_xlat16_0.xyz + u_xlat16_7.xyz;
    }
    u_xlatu6 = uint(_FPParams1.w);
    if(u_xlatu6 != uint(0)) {
        u_xlat8.xy = vec2(1.0) / vec2(_ScaledScreenParams.xy);
        u_xlat8.xy = u_xlat8.xy * hlslcc_FragCoord.xy;
        u_xlat8.xy = u_xlat8.xy * _FPParams1.xy;
        u_xlatu8.xy = uvec2(u_xlat8.xy);
        u_xlatu48 = uint(_FPParams1.z);
        u_xlati48 = int(u_xlatu8.y) * int(u_xlatu48) + int(u_xlatu8.x);
        u_xlatu48 = u_xlatu6 * uint(u_xlati48);
        u_xlat8.x = (-hlslcc_mtx4x4unity_MatrixV[0].z);
        u_xlat8.y = (-hlslcc_mtx4x4unity_MatrixV[1].z);
        u_xlat8.z = (-hlslcc_mtx4x4unity_MatrixV[2].z);
        u_xlat5.x = dot(u_xlat8.xyz, u_xlat5.xyz);
        u_xlatb19 = unity_OrthoParams.w==0.0;
        u_xlat33 = log2(u_xlat5.x);
        u_xlat5.x = (u_xlatb19) ? u_xlat33 : u_xlat5.x;
        u_xlat5.x = u_xlat5.x * _FPParams0.x + _FPParams0.y;
        u_xlatu5 = uint(u_xlat5.x);
        u_xlatu5 = min(u_xlatu5, 4095u);
        u_xlati19.x = int(u_xlatu6) + 2;
        u_xlatu33 = uint(u_xlati19.x) * u_xlatu5;
        u_xlatu5 = u_xlatu5 * uint(u_xlati19.x) + 2u;
        u_xlatu19 = uint(u_xlatu33 >> (2u & uint(0x1F)));
        u_xlati8.xy = ivec2(int_bitfieldExtract(int(u_xlatu33), int(0) & int(0x1F), int(1) & int(0x1F)), int_bitfieldExtract(int(u_xlatu33), int(1) & int(0x1F), int(1) & int(0x1F)));
        u_xlati36.xy = ivec2(uvec2(uint(u_xlati8.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu19)].w)), uint(u_xlati8.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu19)].y))));
        u_xlati9.xy = op_not(u_xlati8.xy);
        u_xlati19.xy = ivec2(uvec2(uint(u_xlati9.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu19)].z)), uint(u_xlati9.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu19)].x))));
        u_xlati19.xy = ivec2(uvec2(uint(u_xlati19.x) | uint(u_xlati36.x), uint(u_xlati19.y) | uint(u_xlati36.y)));
        u_xlati19.x = int(uint(uint(u_xlati8.y) & uint(u_xlati19.x)));
        u_xlati33 = int(uint(uint(u_xlati9.y) & uint(u_xlati19.y)));
        u_xlatu19 = uint(uint(u_xlati33) | uint(u_xlati19.x));
        u_xlatu33 = uint(u_xlatu48 >> (2u & uint(0x1F)));
        u_xlati6.xw = ivec2(int_bitfieldExtract(int(u_xlatu48), int(0) & int(0x1F), int(1) & int(0x1F)), int_bitfieldExtract(int(u_xlatu48), int(1) & int(0x1F), int(1) & int(0x1F)));
        u_xlati8.xy = ivec2(uvec2(uint(u_xlati6.x) & uint(floatBitsToUint(urp_Tiles[int(u_xlatu33)].w)), uint(u_xlati6.x) & uint(floatBitsToUint(urp_Tiles[int(u_xlatu33)].y))));
        u_xlati36.xy = op_not(u_xlati6.xw);
        u_xlati9.xy = ivec2(uvec2(uint(u_xlati36.x) & uint(floatBitsToUint(urp_Tiles[int(u_xlatu33)].z)), uint(u_xlati36.x) & uint(floatBitsToUint(urp_Tiles[int(u_xlatu33)].x))));
        u_xlati8.xy = ivec2(uvec2(uint(u_xlati8.x) | uint(u_xlati9.x), uint(u_xlati8.y) | uint(u_xlati9.y)));
        u_xlati33 = int(uint(uint(u_xlati6.w) & uint(u_xlati8.x)));
        u_xlati6.x = int(uint(uint(u_xlati36.y) & uint(u_xlati8.y)));
        u_xlati33 = int(uint(uint(u_xlati33) | uint(u_xlati6.x)));
        u_xlatu6 = uint(u_xlatu5 >> (2u & uint(0x1F)));
        u_xlati8.xy = ivec2(int_bitfieldExtract(int(u_xlatu5), int(0) & int(0x1F), int(1) & int(0x1F)), int_bitfieldExtract(int(u_xlatu5), int(1) & int(0x1F), int(1) & int(0x1F)));
        u_xlati36.xy = ivec2(uvec2(uint(u_xlati8.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu6)].w)), uint(u_xlati8.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu6)].y))));
        u_xlati9.xy = op_not(u_xlati8.xy);
        u_xlati6.xw = ivec2(uvec2(uint(u_xlati9.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu6)].z)), uint(u_xlati9.x) & uint(floatBitsToUint(URP_ZBins[int(u_xlatu6)].x))));
        u_xlati6.xw = ivec2(uvec2(uint(u_xlati6.x) | uint(u_xlati36.x), uint(u_xlati6.w) | uint(u_xlati36.y)));
        u_xlati5 = int(uint(uint(u_xlati8.y) & uint(u_xlati6.x)));
        u_xlati6.x = int(uint(uint(u_xlati9.y) & uint(u_xlati6.w)));
        u_xlati5 = int(uint(uint(u_xlati5) | uint(u_xlati6.x)));
        u_xlati5 = int(uint(uint(u_xlati5) & uint(u_xlati33)));
        u_xlati33 = int(int(0xFFFFFFFFu) << (int(u_xlatu19) & int(0x1F)));
        u_xlati5 = int(uint(uint(u_xlati33) & uint(u_xlati5)));
        u_xlatu19 = uint(u_xlatu19 >> (16u & uint(0x1F)));
        u_xlatu19 = (-u_xlatu19) + 31u;
        u_xlatu19 = uint(4294967295u >> (u_xlatu19 & uint(0x1F)));
        u_xlati5 = int(uint(u_xlatu19 & uint(u_xlati5)));
    } else {
        u_xlati5 = 0;
    }
    u_xlat16_12.xyz = u_xlat16_7.xyz;
    u_xlati19.x = u_xlati5;
    while(true){
        if(u_xlati19.x == 0) {break;}
        u_xlati33 = 0 - u_xlati19.x;
        u_xlatu33 = uint(uint(u_xlati33) & uint(u_xlati19.x));
        u_xlat33 = float(u_xlatu33);
        u_xlatu33 = uint(uint(floatBitsToUint(u_xlat33)) >> (23u & uint(0x1F)));
        u_xlati33 = int(u_xlatu33) + int(0xFFFFFF81u);
        u_xlati6.x = int(1 << (u_xlati33 & int(0x1F)));
        u_xlati19.x = int(uint(uint(u_xlati19.x) ^ uint(u_xlati6.x)));
        u_xlati33 = int(u_xlatu47) + u_xlati33;
        u_xlat8.xyz = (-vs_TEXCOORD1.xyz) * _AdditionalLightsPosition[u_xlati33].www + _AdditionalLightsPosition[u_xlati33].xyz;
        u_xlat6.x = dot(u_xlat8.xyz, u_xlat8.xyz);
        u_xlat6.x = max(u_xlat6.x, 6.10351562e-05);
        u_xlat48 = inversesqrt(u_xlat6.x);
        u_xlat8.xyz = vec3(u_xlat48) * u_xlat8.xyz;
        u_xlat48 = float(1.0) / float(u_xlat6.x);
        u_xlat6.x = u_xlat6.x * _AdditionalLightsAttenuation[u_xlati33].x;
        u_xlat16_44 = (-u_xlat6.x) * u_xlat6.x + 1.0;
        u_xlat16_44 = max(u_xlat16_44, 0.0);
        u_xlat16_44 = u_xlat16_44 * u_xlat16_44;
        u_xlat6.x = u_xlat16_44 * u_xlat48;
        u_xlat16_44 = dot(_AdditionalLightsSpotDir[u_xlati33].xyz, u_xlat8.xyz);
        u_xlat16_44 = u_xlat16_44 * _AdditionalLightsAttenuation[u_xlati33].z + _AdditionalLightsAttenuation[u_xlati33].w;
        u_xlat16_44 = clamp(u_xlat16_44, 0.0, 1.0);
        u_xlat16_44 = u_xlat16_44 * u_xlat16_44;
        u_xlat6.x = u_xlat16_44 * u_xlat6.x;
        u_xlati48 = int(_AdditionalShadowParams[u_xlati33].w);
        u_xlatb50 = u_xlati48>=0;
        if(u_xlatb50){
            u_xlatb50 = vec4(0.0, 0.0, 0.0, 0.0)!=vec4(_AdditionalShadowParams[u_xlati33].z);
            if(u_xlatb50){
                u_xlatb9.xyz = greaterThanEqual(abs(u_xlat8.zzyz), abs(u_xlat8.xyxx)).xyz;
                u_xlatb50 = u_xlatb9.y && u_xlatb9.x;
                u_xlatb9.xyw = lessThan((-u_xlat8.zyzx), vec4(0.0, 0.0, 0.0, 0.0)).xyw;
                u_xlat9.x = (u_xlatb9.x) ? float(5.0) : float(4.0);
                u_xlat9.y = (u_xlatb9.y) ? float(3.0) : float(2.0);
                u_xlat51 = u_xlatb9.w ? 1.0 : float(0.0);
                u_xlat23.x = (u_xlatb9.z) ? u_xlat9.y : u_xlat51;
                u_xlat50 = (u_xlatb50) ? u_xlat9.x : u_xlat23.x;
                u_xlat9.x = trunc(_AdditionalShadowParams[u_xlati33].w);
                u_xlat50 = u_xlat50 + u_xlat9.x;
                u_xlati48 = int(u_xlat50);
            }
            u_xlati48 = int(u_xlati48 << (2 & int(0x1F)));
            u_xlat3 = vs_TEXCOORD1.yyyy * hlslcc_mtx4x4_AdditionalLightsWorldToShadow[(u_xlati48 + 1)];
            u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToShadow[u_xlati48] * vs_TEXCOORD1.xxxx + u_xlat3;
            u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToShadow[(u_xlati48 + 2)] * vs_TEXCOORD1.zzzz + u_xlat3;
            u_xlat3 = u_xlat3 + hlslcc_mtx4x4_AdditionalLightsWorldToShadow[(u_xlati48 + 3)];
            u_xlat9.xyz = u_xlat3.xyz / u_xlat3.www;
            vec3 txVec2 = vec3(u_xlat9.xy,u_xlat9.z);
            u_xlat16_48 = textureLod(hlslcc_zcmp_AdditionalLightsShadowmapTexture, txVec2, 0.0);
            u_xlat16_44 = 1.0 + (-_AdditionalShadowParams[u_xlati33].x);
            u_xlat16_44 = u_xlat16_48 * _AdditionalShadowParams[u_xlati33].x + u_xlat16_44;
            u_xlatb48 = 0.0>=u_xlat9.z;
            u_xlatb50 = u_xlat9.z>=1.0;
            u_xlatb48 = u_xlatb48 || u_xlatb50;
            u_xlat16_44 = (u_xlatb48) ? 1.0 : u_xlat16_44;
        } else {
            u_xlat16_44 = 1.0;
        }
        u_xlat16_46 = (-u_xlat16_44) + 1.0;
        u_xlat16_44 = u_xlat43 * u_xlat16_46 + u_xlat16_44;
        u_xlati48 = int(1 << (u_xlati33 & int(0x1F)));
        u_xlati48 = int(uint(uint(u_xlati48) & uint(floatBitsToUint(_AdditionalLightsCookieEnableBits))));
        if(u_xlati48 != 0) {
            u_xlati48 = int(_AdditionalLightsLightTypes[u_xlati33]);
            u_xlati50 = (u_xlati48 != 0) ? 0 : 1;
            u_xlati9.x = int(u_xlati33 << (2 & int(0x1F)));
            if(u_xlati50 != 0) {
                u_xlat23.xyz = vs_TEXCOORD1.yyy * hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 1)].xyw;
                u_xlat23.xyz = hlslcc_mtx4x4_AdditionalLightsWorldToLights[u_xlati9.x].xyw * vs_TEXCOORD1.xxx + u_xlat23.xyz;
                u_xlat23.xyz = hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 2)].xyw * vs_TEXCOORD1.zzz + u_xlat23.xyz;
                u_xlat23.xyz = u_xlat23.xyz + hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 3)].xyw;
                u_xlat23.xy = u_xlat23.xy / u_xlat23.zz;
                u_xlat23.xy = u_xlat23.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
                u_xlat23.xy = clamp(u_xlat23.xy, 0.0, 1.0);
                u_xlat23.xy = _AdditionalLightsCookieAtlasUVRects[u_xlati33].xy * u_xlat23.xy + _AdditionalLightsCookieAtlasUVRects[u_xlati33].zw;
            } else {
                u_xlatb48 = u_xlati48==1;
                u_xlati48 = u_xlatb48 ? 1 : int(0);
                if(u_xlati48 != 0) {
                    u_xlat10.xy = vs_TEXCOORD1.yy * hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 1)].xy;
                    u_xlat10.xy = hlslcc_mtx4x4_AdditionalLightsWorldToLights[u_xlati9.x].xy * vs_TEXCOORD1.xx + u_xlat10.xy;
                    u_xlat10.xy = hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 2)].xy * vs_TEXCOORD1.zz + u_xlat10.xy;
                    u_xlat10.xy = u_xlat10.xy + hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 3)].xy;
                    u_xlat10.xy = u_xlat10.xy * vec2(0.5, 0.5) + vec2(0.5, 0.5);
                    u_xlat10.xy = fract(u_xlat10.xy);
                    u_xlat23.xy = _AdditionalLightsCookieAtlasUVRects[u_xlati33].xy * u_xlat10.xy + _AdditionalLightsCookieAtlasUVRects[u_xlati33].zw;
                } else {
                    u_xlat3 = vs_TEXCOORD1.yyyy * hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 1)];
                    u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToLights[u_xlati9.x] * vs_TEXCOORD1.xxxx + u_xlat3;
                    u_xlat3 = hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 2)] * vs_TEXCOORD1.zzzz + u_xlat3;
                    u_xlat3 = u_xlat3 + hlslcc_mtx4x4_AdditionalLightsWorldToLights[(u_xlati9.x + 3)];
                    u_xlat10.xyz = u_xlat3.xyz / u_xlat3.www;
                    u_xlat48 = dot(u_xlat10.xyz, u_xlat10.xyz);
                    u_xlat48 = inversesqrt(u_xlat48);
                    u_xlat10.xyz = vec3(u_xlat48) * u_xlat10.xyz;
                    u_xlat48 = dot(abs(u_xlat10.xyz), vec3(1.0, 1.0, 1.0));
                    u_xlat48 = max(u_xlat48, 9.99999997e-07);
                    u_xlat48 = float(1.0) / float(u_xlat48);
                    u_xlat11.xyz = vec3(u_xlat48) * u_xlat10.zxy;
                    u_xlat11.x = (-u_xlat11.x);
                    u_xlat11.x = clamp(u_xlat11.x, 0.0, 1.0);
                    u_xlatb9.xw = greaterThanEqual(u_xlat11.yyyz, vec4(0.0, 0.0, 0.0, 0.0)).xw;
                    u_xlat9.x = (u_xlatb9.x) ? u_xlat11.x : (-u_xlat11.x);
                    u_xlat9.w = (u_xlatb9.w) ? u_xlat11.x : (-u_xlat11.x);
                    u_xlat9.xw = u_xlat10.xy * vec2(u_xlat48) + u_xlat9.xw;
                    u_xlat9.xw = u_xlat9.xw * vec2(0.5, 0.5) + vec2(0.5, 0.5);
                    u_xlat9.xw = clamp(u_xlat9.xw, 0.0, 1.0);
                    u_xlat23.xy = _AdditionalLightsCookieAtlasUVRects[u_xlati33].xy * u_xlat9.xw + _AdditionalLightsCookieAtlasUVRects[u_xlati33].zw;
                }
            }
            u_xlat16_3 = textureLod(_AdditionalLightsCookieAtlasTexture, u_xlat23.xy, 0.0);
            u_xlat16_46 = (u_xlatb20.y) ? u_xlat16_3.w : u_xlat16_3.x;
            u_xlat16_13.xyz = (u_xlatb20.x) ? u_xlat16_3.xyz : vec3(u_xlat16_46);
        } else {
            u_xlat16_13.x = float(1.0);
            u_xlat16_13.y = float(1.0);
            u_xlat16_13.z = float(1.0);
        }
        u_xlat16_13.xyz = u_xlat16_13.xyz * _AdditionalLightsColor[u_xlati33].xyz;
        u_xlat33 = u_xlat16_44 * u_xlat6.x;
        u_xlat9.xyz = vec3(u_xlat33) * u_xlat16_13.xyz;
        u_xlat16_44 = dot(u_xlat1.xyz, u_xlat8.xyz);
        u_xlat16_44 = clamp(u_xlat16_44, 0.0, 1.0);
        u_xlat16_13.xyz = vec3(u_xlat16_44) * u_xlat9.xyz;
        u_xlat16_12.xyz = u_xlat16_13.xyz * u_xlat16_0.xyz + u_xlat16_12.xyz;
    }
    u_xlat16_2.xyz = u_xlat16_2.xyz * u_xlat16_0.xyz + u_xlat16_4.xyz;
    SV_Target0.xyz = u_xlat16_12.xyz + u_xlat16_2.xyz;
    u_xlatb1 = _Surface==1.0;
    SV_Target0.w = (u_xlatb1) ? u_xlat16_0.w : 1.0;
    return;
}


// Keywords: _ADDITIONAL_LIGHT_SHADOWS _FORWARD_PLUS _LIGHT_COOKIES _MAIN_LIGHT_SHADOWS
// 